/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Ingresos;

import Entidades.Facultad;
import javax.persistence.EntityManagerFactory;
import Controladores.FacultadJpaController;
import Controladores.exceptions.IllegalOrphanException;
import Controladores.exceptions.NonexistentEntityException;
import java.util.logging.Level;
import java.util.logging.Logger;
import Usuarios.conexion;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;

/**
 *
 * @author Victor Jose Betancohurt
 */
public class IFacultad 
{
    public IFacultad()
    {
    }
    ////procedimiento para ingresar Facultad Creado por Victor Jose Betancohurt
    public void guardar(String nombre)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        Facultad facultad = new Facultad();
        FacultadJpaController controlador = new FacultadJpaController(emf);
        facultad.setNombre(nombre);
        facultad.setAnulado(false);
        controlador.create(facultad);
    }
    ////procedimiento para Modificar Facultad Creado por Victor Jose Betancohurt
    public void ModificarId(Facultad facultad)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        FacultadJpaController controlador = new FacultadJpaController(emf);
        try {
            controlador.edit(facultad);
        } catch (IllegalOrphanException ex) {
            Logger.getLogger(IFacultad.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(IFacultad.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(IFacultad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    //procedimiento buscar Id para modificar Creado por Victor Jose Betancohurt
    public Facultad buscarId(int id)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        FacultadJpaController controlador = new FacultadJpaController(emf);
        return controlador.findFacultad(id);
    }
    //funcion buscar nombre y regresa una lista tipo Facultad
    public List<Facultad> buscarNombre(String nombre)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        EntityManager em = emf.createEntityManager();
        Query qr;
        qr = em.createNamedQuery("Facultad.findByNombre");
        qr.setParameter("nombre", nombre);
        List<Facultad> lista = qr.getResultList();
        return lista;
    }
    public List<Facultad> mostrarTodo()
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        FacultadJpaController controlador = new FacultadJpaController(emf);
        return controlador.findFacultadEntities();
    }
    public List<Facultad> mostroarTodoFalse()
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        EntityManager em = emf.createEntityManager();
        Query qr;
        qr = em.createNamedQuery("Facultad.findByAnulado");
        qr.setParameter("anulado", false);
        List<Facultad> lista = qr.getResultList();
        return lista;
    }
    public List<Facultad> mostroarTodoTrue()
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        EntityManager em = emf.createEntityManager();
        Query qr;
        qr = em.createNamedQuery("Facultad.findByAnulado");
        qr.setParameter("anulado", true);
        List<Facultad> lista = qr.getResultList();
        return lista;
    }
    public String toString(int id)
    {
        Facultad facultad=this.buscarId(id);
        return facultad.toString();
    }
}
